{
  "bundles": [
    {
      "@type": "NXBundle",
      "artifactId": "nuxeo-user-center",
      "artifactVersion": "2021.64.6",
      "bundleGroup": {
        "@type": "NXBundleGroup",
        "bundleIds": [
          "org.nuxeo.ecm.user.center",
          "org.nuxeo.ecm.user.center.dashboard",
          "org.nuxeo.ecm.user.center.dashboard.jsf",
          "org.nuxeo.ecm.user.center.notification",
          "org.nuxeo.ecm.user.center.oauth",
          "org.nuxeo.ecm.user.center.profile",
          "org.nuxeo.ecm.user.center.profile.jsf",
          "org.nuxeo.ecm.user.invite",
          "org.nuxeo.ecm.user.registration",
          "org.nuxeo.ecm.user.registration.web"
        ],
        "hierarchyPath": "/grp:org.nuxeo.ecm.platform/grp:org.nuxeo.ecm.user",
        "id": "grp:org.nuxeo.ecm.user",
        "name": "org.nuxeo.ecm.user",
        "parentIds": [
          "grp:org.nuxeo.ecm.platform"
        ],
        "readmes": [],
        "version": "2021.64"
      },
      "bundleId": "org.nuxeo.ecm.user.center",
      "components": [
        {
          "@type": "NXComponent",
          "documentationHtml": "",
          "extensionPoints": [],
          "extensions": [
            {
              "@type": "NXContribution",
              "documentationHtml": "",
              "extensionPoint": "org.nuxeo.ecm.platform.actions.ActionService--actions",
              "hierarchyPath": "/grp:org.nuxeo.ecm.platform/grp:org.nuxeo.ecm.user/org.nuxeo.ecm.user.center/org.nuxeo.ecm.user.center.actions/Contributions/org.nuxeo.ecm.user.center.actions--actions",
              "id": "org.nuxeo.ecm.user.center.actions--actions",
              "registrationOrder": 48,
              "targetComponentName": {
                "rawName": "service:org.nuxeo.ecm.platform.actions.ActionService",
                "name": "org.nuxeo.ecm.platform.actions.ActionService",
                "type": "service"
              },
              "version": "2021.64.6",
              "xml": "<extension point=\"actions\" target=\"org.nuxeo.ecm.platform.actions.ActionService\">\n\n    <action id=\"home\" label=\"label.main.tab.home\" link=\"view_home\" order=\"20\" type=\"main_tab\">\n      <category>MAIN_TABS</category>\n      <filter-id>not_transient_user</filter-id>\n    </action>\n\n    <!-- Users and Groups directory -->\n    <action icon=\"/icons/users_groups.png\" id=\"UsersGroupsHome\" label=\"command.manageMembers\" link=\"/user_center_fragment.xhtml\" order=\"60\">\n      <category>USER_CENTER</category>\n      <filter-id>not_anonymous</filter-id>\n      <filter-id>not_readonly</filter-id>\n      <filter-id>not_transient_user</filter-id>\n    </action>\n    <action id=\"UsersHome\" label=\"label.userManager.users\" link=\"/users/view_users.xhtml\" order=\"10\">\n      <category>UsersGroupsHome_sub_tab</category>\n      <filter-id>not_readonly</filter-id>\n    </action>\n    <action id=\"GroupsHome\" label=\"label.groupManager.groups\" link=\"/users/view_groups.xhtml\" order=\"20\">\n      <category>UsersGroupsHome_sub_tab</category>\n      <filter-id>not_readonly</filter-id>\n    </action>\n\n    <!-- Saved searches -->\n    <action icon=\"/icons/saved_searches.png\" id=\"SavedSearches\" label=\"user.center.saved.searches\" link=\"/user_center_fragment.xhtml\" order=\"70\">\n      <category>USER_CENTER</category>\n      <filter-id>not_anonymous</filter-id>\n      <filter-id>not_transient_user</filter-id>\n      <filter id=\"SavedSearches_has_subtabs\">\n        <rule grant=\"false\">\n          <condition>\n            #{webActions.getActionsList('SavedSearches_sub_tab').isEmpty()}\n          </condition>\n        </rule>\n      </filter>\n    </action>\n\n  </extension>"
            }
          ],
          "hierarchyPath": "/grp:org.nuxeo.ecm.platform/grp:org.nuxeo.ecm.user/org.nuxeo.ecm.user.center/org.nuxeo.ecm.user.center.actions",
          "name": "org.nuxeo.ecm.user.center.actions",
          "requirements": [],
          "resolutionOrder": 904,
          "services": [],
          "startOrder": 616,
          "version": "2021.64.6",
          "xmlFileContent": "<component name=\"org.nuxeo.ecm.user.center.actions\">\n\n  <extension target=\"org.nuxeo.ecm.platform.actions.ActionService\"\n    point=\"actions\">\n\n    <action id=\"home\" link=\"view_home\" label=\"label.main.tab.home\" order=\"20\"\n      type=\"main_tab\">\n      <category>MAIN_TABS</category>\n      <filter-id>not_transient_user</filter-id>\n    </action>\n\n    <!-- Users and Groups directory -->\n    <action id=\"UsersGroupsHome\" link=\"/user_center_fragment.xhtml\"\n      label=\"command.manageMembers\" icon=\"/icons/users_groups.png\" order=\"60\">\n      <category>USER_CENTER</category>\n      <filter-id>not_anonymous</filter-id>\n      <filter-id>not_readonly</filter-id>\n      <filter-id>not_transient_user</filter-id>\n    </action>\n    <action id=\"UsersHome\" link=\"/users/view_users.xhtml\"\n      label=\"label.userManager.users\" order=\"10\">\n      <category>UsersGroupsHome_sub_tab</category>\n      <filter-id>not_readonly</filter-id>\n    </action>\n    <action id=\"GroupsHome\" link=\"/users/view_groups.xhtml\"\n      label=\"label.groupManager.groups\" order=\"20\">\n      <category>UsersGroupsHome_sub_tab</category>\n      <filter-id>not_readonly</filter-id>\n    </action>\n\n    <!-- Saved searches -->\n    <action id=\"SavedSearches\" link=\"/user_center_fragment.xhtml\"\n      label=\"user.center.saved.searches\" icon=\"/icons/saved_searches.png\" order=\"70\">\n      <category>USER_CENTER</category>\n      <filter-id>not_anonymous</filter-id>\n      <filter-id>not_transient_user</filter-id>\n      <filter id=\"SavedSearches_has_subtabs\">\n        <rule grant=\"false\">\n          <condition>\n            #{webActions.getActionsList('SavedSearches_sub_tab').isEmpty()}\n          </condition>\n        </rule>\n      </filter>\n    </action>\n\n  </extension>\n\n</component>\n",
          "xmlFileName": "/OSGI-INF/actions-contrib.xml",
          "xmlPureComponent": true
        },
        {
          "@type": "NXComponent",
          "documentation": "\n    @since 6.0, global widgets used to render actions/tabs\n    in Home.\n  \n",
          "documentationHtml": "<p>\n&#64;since 6.0, global widgets used to render actions/tabs\nin Home.\n</p><p></p>",
          "extensionPoints": [],
          "extensions": [
            {
              "@type": "NXContribution",
              "documentationHtml": "",
              "extensionPoint": "org.nuxeo.ecm.platform.forms.layout.WebLayoutManager--widgets",
              "hierarchyPath": "/grp:org.nuxeo.ecm.platform/grp:org.nuxeo.ecm.user/org.nuxeo.ecm.user.center/org.nuxeo.ecm.user.center.action.widgets/Contributions/org.nuxeo.ecm.user.center.action.widgets--widgets",
              "id": "org.nuxeo.ecm.user.center.action.widgets--widgets",
              "registrationOrder": 34,
              "targetComponentName": {
                "rawName": "service:org.nuxeo.ecm.platform.forms.layout.WebLayoutManager",
                "name": "org.nuxeo.ecm.platform.forms.layout.WebLayoutManager",
                "type": "service"
              },
              "version": "2021.64.6",
              "xml": "<extension point=\"widgets\" target=\"org.nuxeo.ecm.platform.forms.layout.WebLayoutManager\">\n\n    <widget name=\"homeTabs\" type=\"tabs\">\n      <properties mode=\"view\">\n        <property name=\"actionsDisplay\">links</property>\n        <property name=\"addForm\">true</property>\n        <property name=\"useAjaxForm\">#{useAjaxTabs}</property>\n        <property name=\"category\">USER_CENTER</property>\n        <property name=\"actions\">#{userCenterViews.availableActions}</property>\n        <property name=\"currentTabAction\">#{userCenterViews.currentView}</property>\n        <property name=\"overallDisplay\">vertical_block</property>\n      </properties>\n    </widget>\n\n    <widget name=\"userCenterSubTabs\" type=\"tabs\">\n      <properties mode=\"view\">\n        <property name=\"actionsDisplay\">links</property>\n        <property name=\"addForm\">true</property>\n        <property name=\"useAjaxForm\">#{useAjaxTabs}</property>\n        <property name=\"actions\">\n          #{userCenterViews.availableSubActions}\n        </property>\n        <property name=\"currentTabAction\">#{userCenterViews.currentSubView}</property>\n        <property name=\"hideSingleTab\">\n          #{not\n          currentUserCenterView.properties.alwaysDisplaySubTabs}\n        </property>\n      </properties>\n    </widget>\n\n  </extension>"
            },
            {
              "@type": "NXContribution",
              "documentationHtml": "",
              "extensionPoint": "org.nuxeo.ecm.platform.forms.layout.LayoutStore--widgettypes",
              "hierarchyPath": "/grp:org.nuxeo.ecm.platform/grp:org.nuxeo.ecm.user/org.nuxeo.ecm.user.center/org.nuxeo.ecm.user.center.action.widgets/Contributions/org.nuxeo.ecm.user.center.action.widgets--widgettypes",
              "id": "org.nuxeo.ecm.user.center.action.widgets--widgettypes",
              "registrationOrder": 3,
              "targetComponentName": {
                "rawName": "service:org.nuxeo.ecm.platform.forms.layout.LayoutStore",
                "name": "org.nuxeo.ecm.platform.forms.layout.LayoutStore",
                "type": "service"
              },
              "version": "2021.64.6",
              "xml": "<extension point=\"widgettypes\" target=\"org.nuxeo.ecm.platform.forms.layout.LayoutStore\">\n\n    <widgetType name=\"home_rest_document_link\">\n      <categories>\n        <category>jsfAction</category>\n      </categories>\n      <configuration>\n        <sinceVersion>6.0</sinceVersion>\n        <title>Document Home Rest Link</title>\n        <description>\n          Widget displaying a restful document link for an action\n          (typically a tab link). Useful for Home tabs migration to tabs\n          widget,\n          to apply compatibility changes on existing actions.\n        </description>\n        <categories>\n          <category>action</category>\n        </categories>\n        <supportedModes>\n          <mode>view</mode>\n        </supportedModes>\n        <properties>\n          <defaultValues mode=\"any\">\n            <property name=\"repositoryName\">#{currentServerLocation.name}</property>\n            <property name=\"discardSurroundingForm\">true</property>\n            <property name=\"disableMultiPartForm\">true</property>\n            <property name=\"supportAjax\">#{canUseAjaxTabs}</property>\n            <property name=\"view\">view_home</property>\n            <property name=\"pattern\">home</property>\n          </defaultValues>\n        </properties>\n      </configuration>\n      <handler-class>\n        org.nuxeo.ecm.platform.actions.facelets.ActionWidgetTypeHandler\n      </handler-class>\n      <property name=\"template\">\n        /incl/action/widgets/rest_document_link_action_template.xhtml\n      </property>\n      <property name=\"compat_template\">\n        /incl/action/rest_document_link_action_template.xhtml\n      </property>\n      <property name=\"dev_template\">\n        /widgets/actions/dev/action_widget_type_dev_template.xhtml\n      </property>\n    </widgetType>\n\n  </extension>"
            },
            {
              "@type": "NXContribution",
              "documentationHtml": "",
              "extensionPoint": "org.nuxeo.ecm.platform.actions.ActionService--typeCompatibility",
              "hierarchyPath": "/grp:org.nuxeo.ecm.platform/grp:org.nuxeo.ecm.user/org.nuxeo.ecm.user.center/org.nuxeo.ecm.user.center.action.widgets/Contributions/org.nuxeo.ecm.user.center.action.widgets--typeCompatibility",
              "id": "org.nuxeo.ecm.user.center.action.widgets--typeCompatibility",
              "registrationOrder": 3,
              "targetComponentName": {
                "rawName": "service:org.nuxeo.ecm.platform.actions.ActionService",
                "name": "org.nuxeo.ecm.platform.actions.ActionService",
                "type": "service"
              },
              "version": "2021.64.6",
              "xml": "<extension point=\"typeCompatibility\" target=\"org.nuxeo.ecm.platform.actions.ActionService\">\n\n    <typeCompatibility type=\"home_rest_document_link\">\n      <category>USER_CENTER</category>\n      <category>UsersGroupsHome_sub_tab</category>\n      <category>Dashboard_sub_tab</category>\n      <category>MiniMessages_sub_tab</category>\n      <category>Collections_sub_tab</category>\n      <category>Certificate_sub_tab</category>\n      <category>WorkflowHome_sub_tab</category>\n      <category>ActivityStream_sub_tab</category>\n      <category>AuthorizedApplication_sub_tab</category>\n      <category>Profile_sub_tab</category>\n      <category>Preferences_sub_tab</category>\n      <category>relationship_network_sub_tab</category>\n      <category>SavedSearches_sub_tab</category>\n    </typeCompatibility>\n\n  </extension>"
            }
          ],
          "hierarchyPath": "/grp:org.nuxeo.ecm.platform/grp:org.nuxeo.ecm.user/org.nuxeo.ecm.user.center/org.nuxeo.ecm.user.center.action.widgets",
          "name": "org.nuxeo.ecm.user.center.action.widgets",
          "requirements": [],
          "resolutionOrder": 905,
          "services": [],
          "startOrder": 615,
          "version": "2021.64.6",
          "xmlFileContent": "<component name=\"org.nuxeo.ecm.user.center.action.widgets\">\n\n  <documentation>\n    @since 6.0, global widgets used to render actions/tabs\n    in Home.\n  </documentation>\n\n  <extension target=\"org.nuxeo.ecm.platform.forms.layout.WebLayoutManager\"\n    point=\"widgets\">\n\n    <widget name=\"homeTabs\" type=\"tabs\">\n      <properties mode=\"view\">\n        <property name=\"actionsDisplay\">links</property>\n        <property name=\"addForm\">true</property>\n        <property name=\"useAjaxForm\">#{useAjaxTabs}</property>\n        <property name=\"category\">USER_CENTER</property>\n        <property name=\"actions\">#{userCenterViews.availableActions}</property>\n        <property name=\"currentTabAction\">#{userCenterViews.currentView}</property>\n        <property name=\"overallDisplay\">vertical_block</property>\n      </properties>\n    </widget>\n\n    <widget name=\"userCenterSubTabs\" type=\"tabs\">\n      <properties mode=\"view\">\n        <property name=\"actionsDisplay\">links</property>\n        <property name=\"addForm\">true</property>\n        <property name=\"useAjaxForm\">#{useAjaxTabs}</property>\n        <property name=\"actions\">\n          #{userCenterViews.availableSubActions}\n        </property>\n        <property name=\"currentTabAction\">#{userCenterViews.currentSubView}</property>\n        <property name=\"hideSingleTab\">\n          #{not\n          currentUserCenterView.properties.alwaysDisplaySubTabs}\n        </property>\n      </properties>\n    </widget>\n\n  </extension>\n\n  <extension target=\"org.nuxeo.ecm.platform.forms.layout.LayoutStore\"\n    point=\"widgettypes\">\n\n    <widgetType name=\"home_rest_document_link\">\n      <categories>\n        <category>jsfAction</category>\n      </categories>\n      <configuration>\n        <sinceVersion>6.0</sinceVersion>\n        <title>Document Home Rest Link</title>\n        <description>\n          Widget displaying a restful document link for an action\n          (typically a tab link). Useful for Home tabs migration to tabs\n          widget,\n          to apply compatibility changes on existing actions.\n        </description>\n        <categories>\n          <category>action</category>\n        </categories>\n        <supportedModes>\n          <mode>view</mode>\n        </supportedModes>\n        <properties>\n          <defaultValues mode=\"any\">\n            <property name=\"repositoryName\">#{currentServerLocation.name}</property>\n            <property name=\"discardSurroundingForm\">true</property>\n            <property name=\"disableMultiPartForm\">true</property>\n            <property name=\"supportAjax\">#{canUseAjaxTabs}</property>\n            <property name=\"view\">view_home</property>\n            <property name=\"pattern\">home</property>\n          </defaultValues>\n        </properties>\n      </configuration>\n      <handler-class>\n        org.nuxeo.ecm.platform.actions.facelets.ActionWidgetTypeHandler\n      </handler-class>\n      <property name=\"template\">\n        /incl/action/widgets/rest_document_link_action_template.xhtml\n      </property>\n      <property name=\"compat_template\">\n        /incl/action/rest_document_link_action_template.xhtml\n      </property>\n      <property name=\"dev_template\">\n        /widgets/actions/dev/action_widget_type_dev_template.xhtml\n      </property>\n    </widgetType>\n\n  </extension>\n\n  <extension target=\"org.nuxeo.ecm.platform.actions.ActionService\"\n    point=\"typeCompatibility\">\n\n    <typeCompatibility type=\"home_rest_document_link\">\n      <category>USER_CENTER</category>\n      <category>UsersGroupsHome_sub_tab</category>\n      <category>Dashboard_sub_tab</category>\n      <category>MiniMessages_sub_tab</category>\n      <category>Collections_sub_tab</category>\n      <category>Certificate_sub_tab</category>\n      <category>WorkflowHome_sub_tab</category>\n      <category>ActivityStream_sub_tab</category>\n      <category>AuthorizedApplication_sub_tab</category>\n      <category>Profile_sub_tab</category>\n      <category>Preferences_sub_tab</category>\n      <category>relationship_network_sub_tab</category>\n      <category>SavedSearches_sub_tab</category>\n    </typeCompatibility>\n\n  </extension>\n\n</component>\n",
          "xmlFileName": "/OSGI-INF/action-widgets-contrib.xml",
          "xmlPureComponent": true
        },
        {
          "@type": "NXComponent",
          "documentationHtml": "",
          "extensionPoints": [],
          "extensions": [
            {
              "@type": "NXContribution",
              "documentationHtml": "",
              "extensionPoint": "org.nuxeo.theme.styling.service--pages",
              "hierarchyPath": "/grp:org.nuxeo.ecm.platform/grp:org.nuxeo.ecm.user/org.nuxeo.ecm.user.center/org.nuxeo.ecm.user.center.theme/Contributions/org.nuxeo.ecm.user.center.theme--pages",
              "id": "org.nuxeo.ecm.user.center.theme--pages",
              "registrationOrder": 4,
              "targetComponentName": {
                "rawName": "service:org.nuxeo.theme.styling.service",
                "name": "org.nuxeo.theme.styling.service",
                "type": "service"
              },
              "version": "2021.64.6",
              "xml": "<extension point=\"pages\" target=\"org.nuxeo.theme.styling.service\">\n\n    <themePage charset=\"utf-8\" name=\"userCenter/default\">\n      <defaultFlavor>default</defaultFlavor>\n      <flavors>\n        <flavor>default</flavor>\n        <flavor>rainbow</flavor>\n      </flavors>\n      <resources>\n        <bundle>nuxeo_includes</bundle>\n        <bundle>nuxeo_base</bundle>\n        <bundle>nuxeo_sassCss</bundle>\n        <resource>nuxeo_usercenter_specific.scss</resource>\n      </resources>\n    </themePage>\n\n  </extension>"
            },
            {
              "@type": "NXContribution",
              "documentationHtml": "",
              "extensionPoint": "org.nuxeo.ecm.platform.WebResources--resources",
              "hierarchyPath": "/grp:org.nuxeo.ecm.platform/grp:org.nuxeo.ecm.user/org.nuxeo.ecm.user.center/org.nuxeo.ecm.user.center.theme/Contributions/org.nuxeo.ecm.user.center.theme--resources",
              "id": "org.nuxeo.ecm.user.center.theme--resources",
              "registrationOrder": 13,
              "targetComponentName": {
                "rawName": "service:org.nuxeo.ecm.platform.WebResources",
                "name": "org.nuxeo.ecm.platform.WebResources",
                "type": "service"
              },
              "version": "2021.64.6",
              "xml": "<extension point=\"resources\" target=\"org.nuxeo.ecm.platform.WebResources\">\n\n    <resource name=\"nuxeo_usercenter_specific.scss\" type=\"css\">\n      <path>themes/sass/nuxeo_usercenter_specific.scss</path>\n      <processors>\n        <processor>sassCss</processor>\n      </processors>\n    </resource>\n\n  </extension>"
            }
          ],
          "hierarchyPath": "/grp:org.nuxeo.ecm.platform/grp:org.nuxeo.ecm.user/org.nuxeo.ecm.user.center/org.nuxeo.ecm.user.center.theme",
          "name": "org.nuxeo.ecm.user.center.theme",
          "requirements": [],
          "resolutionOrder": 906,
          "services": [],
          "startOrder": 639,
          "version": "2021.64.6",
          "xmlFileContent": "<?xml version=\"1.0\"?>\n<component name=\"org.nuxeo.ecm.user.center.theme\">\n\n  <extension target=\"org.nuxeo.theme.styling.service\" point=\"pages\">\n\n    <themePage name=\"userCenter/default\" charset=\"utf-8\">\n      <defaultFlavor>default</defaultFlavor>\n      <flavors>\n        <flavor>default</flavor>\n        <flavor>rainbow</flavor>\n      </flavors>\n      <resources>\n        <bundle>nuxeo_includes</bundle>\n        <bundle>nuxeo_base</bundle>\n        <bundle>nuxeo_sassCss</bundle>\n        <resource>nuxeo_usercenter_specific.scss</resource>\n      </resources>\n    </themePage>\n\n  </extension>\n\n  <extension target=\"org.nuxeo.ecm.platform.WebResources\" point=\"resources\">\n\n    <resource name=\"nuxeo_usercenter_specific.scss\" type=\"css\">\n      <path>themes/sass/nuxeo_usercenter_specific.scss</path>\n      <processors>\n        <processor>sassCss</processor>\n      </processors>\n    </resource>\n\n  </extension>\n\n</component>\n",
          "xmlFileName": "/OSGI-INF/theme-contrib.xml",
          "xmlPureComponent": true
        },
        {
          "@type": "NXComponent",
          "documentationHtml": "",
          "extensionPoints": [],
          "extensions": [
            {
              "@type": "NXContribution",
              "documentationHtml": "",
              "extensionPoint": "org.nuxeo.ecm.platform.ui.web.auth.service.PluggableAuthenticationService--startURL",
              "hierarchyPath": "/grp:org.nuxeo.ecm.platform/grp:org.nuxeo.ecm.user/org.nuxeo.ecm.user.center/org.nuxeo.ecm.user.center.auth/Contributions/org.nuxeo.ecm.user.center.auth--startURL",
              "id": "org.nuxeo.ecm.user.center.auth--startURL",
              "registrationOrder": 10,
              "targetComponentName": {
                "rawName": "service:org.nuxeo.ecm.platform.ui.web.auth.service.PluggableAuthenticationService",
                "name": "org.nuxeo.ecm.platform.ui.web.auth.service.PluggableAuthenticationService",
                "type": "service"
              },
              "version": "2021.64.6",
              "xml": "<extension point=\"startURL\" target=\"org.nuxeo.ecm.platform.ui.web.auth.service.PluggableAuthenticationService\">\n\n    <startURLPattern>\n      <patterns>\n        <pattern>nxhome/</pattern>\n        <pattern>user/</pattern>\n        <pattern>group/</pattern>\n      </patterns>\n    </startURLPattern>\n\n  </extension>"
            }
          ],
          "hierarchyPath": "/grp:org.nuxeo.ecm.platform/grp:org.nuxeo.ecm.user/org.nuxeo.ecm.user.center/org.nuxeo.ecm.user.center.auth",
          "name": "org.nuxeo.ecm.user.center.auth",
          "requirements": [],
          "resolutionOrder": 907,
          "services": [],
          "startOrder": 617,
          "version": "2021.64.6",
          "xmlFileContent": "<?xml version=\"1.0\"?>\n<component name=\"org.nuxeo.ecm.user.center.auth\">\n\n  <extension\n    target=\"org.nuxeo.ecm.platform.ui.web.auth.service.PluggableAuthenticationService\"\n    point=\"startURL\">\n\n    <startURLPattern>\n      <patterns>\n        <pattern>nxhome/</pattern>\n        <pattern>user/</pattern>\n        <pattern>group/</pattern>\n      </patterns>\n    </startURLPattern>\n\n  </extension>\n\n</component>\n",
          "xmlFileName": "/OSGI-INF/auth-contrib.xml",
          "xmlPureComponent": true
        },
        {
          "@type": "NXComponent",
          "documentationHtml": "",
          "extensionPoints": [],
          "extensions": [
            {
              "@type": "NXContribution",
              "documentation": "\n      The user codec uses the given username to select and display a user.\n      Urls are of the form http://site/nuxeo/user/username(/view).\n\n      The view is optional, and defaults to view_home if not present.\n    \n",
              "documentationHtml": "<p>\nThe user codec uses the given username to select and display a user.\nUrls are of the form http://site/nuxeo/user/username(/view).\n</p><p>\nThe view is optional, and defaults to view_home if not present.\n</p><p></p>",
              "extensionPoint": "org.nuxeo.ecm.platform.url.service.DocumentViewCodecService--codecs",
              "hierarchyPath": "/grp:org.nuxeo.ecm.platform/grp:org.nuxeo.ecm.user/org.nuxeo.ecm.user.center/org.nuxeo.ecm.user.center.urlservice/Contributions/org.nuxeo.ecm.user.center.urlservice--codecs",
              "id": "org.nuxeo.ecm.user.center.urlservice--codecs",
              "registrationOrder": 10,
              "targetComponentName": {
                "rawName": "service:org.nuxeo.ecm.platform.url.service.DocumentViewCodecService",
                "name": "org.nuxeo.ecm.platform.url.service.DocumentViewCodecService",
                "type": "service"
              },
              "version": "2021.64.6",
              "xml": "<extension point=\"codecs\" target=\"org.nuxeo.ecm.platform.url.service.DocumentViewCodecService\">\n\n    <documentViewCodec class=\"org.nuxeo.ecm.platform.url.codec.DocumentPathCodec\" default=\"false\" enabled=\"true\" name=\"docpathhome\" prefix=\"nxhome\"/>\n\n    <documentation>\n      The user codec uses the given username to select and display a user.\n      Urls are of the form http://site/nuxeo/user/username(/view).\n\n      The view is optional, and defaults to view_home if not present.\n    </documentation>\n    <documentViewCodec class=\"org.nuxeo.ecm.user.center.UserCodec\" default=\"false\" enabled=\"true\" name=\"user\" prefix=\"user\"/>\n    <documentViewCodec class=\"org.nuxeo.ecm.user.center.GroupCodec\" default=\"false\" enabled=\"true\" name=\"group\" prefix=\"group\"/>\n\n  </extension>"
            },
            {
              "@type": "NXContribution",
              "documentationHtml": "",
              "extensionPoint": "org.nuxeo.ecm.platform.ui.web.rest.URLService--urlpatterns",
              "hierarchyPath": "/grp:org.nuxeo.ecm.platform/grp:org.nuxeo.ecm.user/org.nuxeo.ecm.user.center/org.nuxeo.ecm.user.center.urlservice/Contributions/org.nuxeo.ecm.user.center.urlservice--urlpatterns",
              "id": "org.nuxeo.ecm.user.center.urlservice--urlpatterns",
              "registrationOrder": 7,
              "targetComponentName": {
                "rawName": "service:org.nuxeo.ecm.platform.ui.web.rest.URLService",
                "name": "org.nuxeo.ecm.platform.ui.web.rest.URLService",
                "type": "service"
              },
              "version": "2021.64.6",
              "xml": "<extension point=\"urlpatterns\" target=\"org.nuxeo.ecm.platform.ui.web.rest.URLService\">\n\n    <urlPattern enabled=\"true\" name=\"home\">\n      <defaultURLPolicy>false</defaultURLPolicy>\n      <needBaseURL>true</needBaseURL>\n      <needRedirectFilter>true</needRedirectFilter>\n      <needFilterPreprocessing>true</needFilterPreprocessing>\n      <codecName>docpathhome</codecName>\n      <actionBinding>#{restHelper.initContextFromRestRequest}</actionBinding>\n      <documentViewBindingApplies>\n        #{mainTabsActions.isOnMainTab('home')}\n      </documentViewBindingApplies>\n      <documentViewBinding>#{restHelper.documentView}</documentViewBinding>\n      <newDocumentViewBinding>\n        #{restHelper.getNewDocumentView(null)}\n      </newDocumentViewBinding>\n      <bindings>\n        <binding callGetter=\"false\" name=\"tabId\">\n          #{webActions.currentTabId}\n        </binding>\n        <binding callGetter=\"false\" name=\"subTabId\">\n          #{webActions.currentSubTabId}\n        </binding>\n        <binding name=\"tabIds\">#{webActions.currentTabIds}</binding>\n        <binding callGetter=\"false\" name=\"language\">\n          #{restHelper.localeString}\n        </binding>\n      </bindings>\n    </urlPattern>\n\n    <urlPattern enabled=\"true\" name=\"user\">\n      <defaultURLPolicy>false</defaultURLPolicy>\n      <needBaseURL>true</needBaseURL>\n      <needRedirectFilter>true</needRedirectFilter>\n      <needFilterPreprocessing>true</needFilterPreprocessing>\n      <codecName>user</codecName>\n      <actionBinding>\n        #{restHelper.initContextFromRestRequest}\n      </actionBinding>\n      <bindings>\n        <binding callGetter=\"false\" name=\"tabIds\">\n          #{webActions.currentTabIds}\n        </binding>\n        <binding callGetter=\"false\" name=\"username\">\n          #{userManagementActions.selectedUserName}\n        </binding>\n        <binding callGetter=\"false\" name=\"showUser\">\n          #{userManagementActions.showUser}\n        </binding>\n      </bindings>\n    </urlPattern>\n\n    <urlPattern enabled=\"true\" name=\"group\">\n      <defaultURLPolicy>false</defaultURLPolicy>\n      <needBaseURL>true</needBaseURL>\n      <needRedirectFilter>true</needRedirectFilter>\n      <needFilterPreprocessing>true</needFilterPreprocessing>\n      <codecName>group</codecName>\n      <actionBinding>\n        #{restHelper.initContextFromRestRequest}\n      </actionBinding>\n      <bindings>\n        <binding callGetter=\"false\" name=\"tabIds\">\n          #{webActions.currentTabIds}\n        </binding>\n        <binding callGetter=\"false\" name=\"groupname\">\n          #{groupManagementActions.selectedGroupName}\n        </binding>\n        <binding callGetter=\"false\" name=\"showGroup\">\n          #{groupManagementActions.showGroup}\n        </binding>\n      </bindings>\n    </urlPattern>\n\n  </extension>"
            }
          ],
          "hierarchyPath": "/grp:org.nuxeo.ecm.platform/grp:org.nuxeo.ecm.user/org.nuxeo.ecm.user.center/org.nuxeo.ecm.user.center.urlservice",
          "name": "org.nuxeo.ecm.user.center.urlservice",
          "requirements": [],
          "resolutionOrder": 908,
          "services": [],
          "startOrder": 640,
          "version": "2021.64.6",
          "xmlFileContent": "<component name=\"org.nuxeo.ecm.user.center.urlservice\">\n\n  <extension\n    target=\"org.nuxeo.ecm.platform.url.service.DocumentViewCodecService\"\n    point=\"codecs\">\n\n    <documentViewCodec name=\"docpathhome\" enabled=\"true\" default=\"false\"\n      prefix=\"nxhome\"\n      class=\"org.nuxeo.ecm.platform.url.codec.DocumentPathCodec\" />\n\n    <documentation>\n      The user codec uses the given username to select and display a user.\n      Urls are of the form http://site/nuxeo/user/username(/view).\n\n      The view is optional, and defaults to view_home if not present.\n    </documentation>\n    <documentViewCodec name=\"user\" enabled=\"true\" default=\"false\"\n      prefix=\"user\"\n      class=\"org.nuxeo.ecm.user.center.UserCodec\" />\n    <documentViewCodec name=\"group\" enabled=\"true\" default=\"false\"\n      prefix=\"group\"\n      class=\"org.nuxeo.ecm.user.center.GroupCodec\" />\n\n  </extension>\n\n  <extension target=\"org.nuxeo.ecm.platform.ui.web.rest.URLService\"\n    point=\"urlpatterns\">\n\n    <urlPattern name=\"home\" enabled=\"true\">\n      <defaultURLPolicy>false</defaultURLPolicy>\n      <needBaseURL>true</needBaseURL>\n      <needRedirectFilter>true</needRedirectFilter>\n      <needFilterPreprocessing>true</needFilterPreprocessing>\n      <codecName>docpathhome</codecName>\n      <actionBinding>#{restHelper.initContextFromRestRequest}</actionBinding>\n      <documentViewBindingApplies>\n        #{mainTabsActions.isOnMainTab('home')}\n      </documentViewBindingApplies>\n      <documentViewBinding>#{restHelper.documentView}</documentViewBinding>\n      <newDocumentViewBinding>\n        #{restHelper.getNewDocumentView(null)}\n      </newDocumentViewBinding>\n      <bindings>\n        <binding name=\"tabId\" callGetter=\"false\">\n          #{webActions.currentTabId}\n        </binding>\n        <binding name=\"subTabId\" callGetter=\"false\">\n          #{webActions.currentSubTabId}\n        </binding>\n        <binding name=\"tabIds\">#{webActions.currentTabIds}</binding>\n        <binding name=\"language\" callGetter=\"false\">\n          #{restHelper.localeString}\n        </binding>\n      </bindings>\n    </urlPattern>\n\n    <urlPattern name=\"user\" enabled=\"true\">\n      <defaultURLPolicy>false</defaultURLPolicy>\n      <needBaseURL>true</needBaseURL>\n      <needRedirectFilter>true</needRedirectFilter>\n      <needFilterPreprocessing>true</needFilterPreprocessing>\n      <codecName>user</codecName>\n      <actionBinding>\n        #{restHelper.initContextFromRestRequest}\n      </actionBinding>\n      <bindings>\n        <binding name=\"tabIds\" callGetter=\"false\">\n          #{webActions.currentTabIds}\n        </binding>\n        <binding name=\"username\" callGetter=\"false\">\n          #{userManagementActions.selectedUserName}\n        </binding>\n        <binding name=\"showUser\" callGetter=\"false\">\n          #{userManagementActions.showUser}\n        </binding>\n      </bindings>\n    </urlPattern>\n\n    <urlPattern name=\"group\" enabled=\"true\">\n      <defaultURLPolicy>false</defaultURLPolicy>\n      <needBaseURL>true</needBaseURL>\n      <needRedirectFilter>true</needRedirectFilter>\n      <needFilterPreprocessing>true</needFilterPreprocessing>\n      <codecName>group</codecName>\n      <actionBinding>\n        #{restHelper.initContextFromRestRequest}\n      </actionBinding>\n      <bindings>\n        <binding name=\"tabIds\" callGetter=\"false\">\n          #{webActions.currentTabIds}\n        </binding>\n        <binding name=\"groupname\" callGetter=\"false\">\n          #{groupManagementActions.selectedGroupName}\n        </binding>\n        <binding name=\"showGroup\" callGetter=\"false\">\n          #{groupManagementActions.showGroup}\n        </binding>\n      </bindings>\n    </urlPattern>\n\n  </extension>\n\n</component>\n",
          "xmlFileName": "/OSGI-INF/urlservice-contrib.xml",
          "xmlPureComponent": true
        },
        {
          "@type": "NXComponent",
          "documentationHtml": "",
          "extensionPoints": [],
          "extensions": [
            {
              "@type": "NXContribution",
              "documentation": "\n      Property to control the regex used for allowed characters\n      in the user/group name when matching a request URL.\n\n      @since 8.3\n    \n",
              "documentationHtml": "<p>\nProperty to control the regex used for allowed characters\nin the user/group name when matching a request URL.\n</p><p>\n&#64;since 8.3\n</p><p></p>",
              "extensionPoint": "org.nuxeo.runtime.ConfigurationService--configuration",
              "hierarchyPath": "/grp:org.nuxeo.ecm.platform/grp:org.nuxeo.ecm.user/org.nuxeo.ecm.user.center/org.nuxeo.ecm.user.center.properties/Contributions/org.nuxeo.ecm.user.center.properties--configuration",
              "id": "org.nuxeo.ecm.user.center.properties--configuration",
              "registrationOrder": 67,
              "targetComponentName": {
                "rawName": "service:org.nuxeo.runtime.ConfigurationService",
                "name": "org.nuxeo.runtime.ConfigurationService",
                "type": "service"
              },
              "version": "2021.64.6",
              "xml": "<extension point=\"configuration\" target=\"org.nuxeo.runtime.ConfigurationService\">\n    <documentation>\n      Property to control the regex used for allowed characters\n      in the user/group name when matching a request URL.\n\n      @since 8.3\n    </documentation>\n    <property name=\"nuxeo.codec.usergroup.allowedCharacters\">[a-zA-Z_0-9\\-\\.@]*</property>\n  </extension>"
            }
          ],
          "hierarchyPath": "/grp:org.nuxeo.ecm.platform/grp:org.nuxeo.ecm.user/org.nuxeo.ecm.user.center/org.nuxeo.ecm.user.center.properties",
          "name": "org.nuxeo.ecm.user.center.properties",
          "requirements": [],
          "resolutionOrder": 909,
          "services": [],
          "startOrder": 638,
          "version": "2021.64.6",
          "xmlFileContent": "<?xml version=\"1.0\"?>\n<component name=\"org.nuxeo.ecm.user.center.properties\">\n\n  <extension target=\"org.nuxeo.runtime.ConfigurationService\" point=\"configuration\">\n    <documentation>\n      Property to control the regex used for allowed characters\n      in the user/group name when matching a request URL.\n\n      @since 8.3\n    </documentation>\n    <property name=\"nuxeo.codec.usergroup.allowedCharacters\">[a-zA-Z_0-9\\-\\.@]*</property>\n  </extension>\n\n</component>\n",
          "xmlFileName": "/OSGI-INF/user-group-codec-properties.xml",
          "xmlPureComponent": true
        }
      ],
      "fileName": "nuxeo-user-center-2021.64.6.jar",
      "groupId": "org.nuxeo.ecm.platform",
      "hierarchyPath": "/grp:org.nuxeo.ecm.platform/grp:org.nuxeo.ecm.user/org.nuxeo.ecm.user.center",
      "id": "org.nuxeo.ecm.user.center",
      "location": "",
      "manifest": "Manifest-Version: 1.0\r\nArchiver-Version: Plexus Archiver\r\nCreated-By: Apache Maven\r\nBuilt-By: root\r\nBuild-Jdk: 11.0.24\r\nBundle-ManifestVersion: 1\r\nBundle-Version: 0.0.1\r\nBundle-Name: Nuxeo User Center\r\nBundle-SymbolicName: org.nuxeo.ecm.user.center;singleton:=true\r\nBundle-Vendor: Nuxeo\r\nNuxeo-Component: OSGI-INF/actions-contrib.xml,OSGI-INF/action-widgets-\r\n contrib.xml,OSGI-INF/theme-contrib.xml,OSGI-INF/auth-contrib.xml,OSGI\r\n -INF/urlservice-contrib.xml,OSGI-INF/user-group-codec-properties.xml\r\n\r\n",
      "maxResolutionOrder": 909,
      "minResolutionOrder": 904,
      "packages": [
        "nuxeo-jsf-ui"
      ],
      "requirements": [],
      "version": "2021.64.6"
    }
  ],
  "creationDate": 1734363736555,
  "key": "Nuxeo Platform-2021.64",
  "name": "Nuxeo Platform",
  "operations": [],
  "packages": [
    {
      "@type": "NXPackage",
      "bundles": [
        "org.nuxeo.admin.center.analytics.dashboards",
        "org.nuxeo.admin.center.jsf",
        "org.nuxeo.admin.center.monitoring",
        "org.nuxeo.admin.center.oauth.opensocial",
        "org.nuxeo.ecm.automation.jsf",
        "org.nuxeo.elasticsearch.web",
        "org.nuxeo.ecm.localconf.web",
        "org.nuxeo.ecm.actions.jsf",
        "org.nuxeo.ecm.platform.audio.jsf",
        "org.nuxeo.ecm.platform.audit.web",
        "org.nuxeo.ecm.platform.comment.web",
        "org.nuxeo.ecm.platform.contentview.jsf",
        "org.nuxeo.ecm.directory.web",
        "org.nuxeo.ecm.platform.forms.layout.client",
        "org.nuxeo.ecm.platform.forms.layout.io",
        "org.nuxeo.ecm.platform.forms.layout.io.plugins",
        "org.nuxeo.ecm.platform.picture.jsf",
        "org.nuxeo.ecm.platform.io.web",
        "org.nuxeo.ecm.platform.login.token.jsf",
        "org.nuxeo.ecm.platform.notification.web",
        "org.nuxeo.ecm.platform.publisher.web",
        "org.nuxeo.ecm.relations.web",
        "org.nuxeo.ecm.platform.rendition.web",
        "org.nuxeo.ecm.platform.suggestbox.jsf",
        "org.nuxeo.ecm.platform.tag.web",
        "org.nuxeo.ecm.platform.task.web",
        "org.nuxeo.ecm.platform.ui.select2",
        "org.nuxeo.ecm.platform.ui",
        "org.nuxeo.ecm.platform.userworkspace.web",
        "org.nuxeo.ecm.platform.video.jsf",
        "org.nuxeo.ecm.webapp.ui",
        "org.nuxeo.ecm.webapp.base",
        "org.nuxeo.ecm.webapp.core",
        "org.nuxeo.ecm.platform.preview.jsf",
        "org.nuxeo.ecm.platform.routing.dashboard",
        "org.nuxeo.ecm.platform.routing.default.jsf",
        "org.nuxeo.ecm.platform.routing.dm",
        "org.nuxeo.ecm.platform.routing.web",
        "org.nuxeo.search.ui",
        "org.nuxeo.theme.migration",
        "org.nuxeo.ecm.user.center",
        "org.nuxeo.ecm.user.center.dashboard",
        "org.nuxeo.ecm.user.center.dashboard.jsf",
        "org.nuxeo.ecm.user.center.notification",
        "org.nuxeo.ecm.user.center.oauth",
        "org.nuxeo.ecm.user.center.profile.jsf",
        "org.nuxeo.web.resources.jsf"
      ],
      "conflicts": [],
      "dependencies": [],
      "hierarchyPath": "/nuxeo-jsf-ui-2021.64.6",
      "id": "nuxeo-jsf-ui-2021.64.6",
      "name": "nuxeo-jsf-ui",
      "optionalDependencies": [],
      "packageType": "addon",
      "title": "Nuxeo JSF UI",
      "version": "2021.64.6"
    }
  ],
  "pluginSnapshots": {},
  "releaseDate": 1734363736555,
  "version": "2021.64"
}